<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>RVM : Compiler Optimization Comparison Chart</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            RVM : Compiler Optimization Comparison Chart
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Mar 25, 2008 by <font color="#0050B2">ianrogers</font>.
				    </div>

				    <p>This section presents a comparison chart of the Jikes RVM against the following JVMs.</p>
<ul>
	<li><a href="http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/topic/com.ibm.java.doc.diagnostics.60/html/jit_optimize.html">IBM JDK v6 r0</a></li>
</ul>


<h2><a name="CompilerOptimizationComparisonChart-Inlining"></a>Inlining</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Category </th>
<th class='confluenceTh'> Optimization </th>
<th class='confluenceTh'> RVM </th>
<th class='confluenceTh'> IBM JDK v6 r0 </th>
</tr>
<tr>
<th class='confluenceTh'> Inlining </th>
<td class='confluenceTd'> Trivial Inlining </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Call graph inlining </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Tail recursion elimination </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Virtual call guard optimizations </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<th class='confluenceTh'> Local optimizations </th>
<td class='confluenceTd'> Local data flow analyses and optimization </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Register usage optimization </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Simplification of Java idioms </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<th class='confluenceTh'> Control flow optimizations </th>
<td class='confluenceTd'> Code reordering, splitting and removal </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop reduction and inversion </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop invariant code motion </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> (disabled) </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop striding </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop unrolling </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> (disabled) </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop peeling </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop versioning </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> (disabled) </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Loop specialization </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Exception directed optimization </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Switch analysis </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<th class='confluenceTh'> Global optimizations </th>
<td class='confluenceTd'> Global flow analyses and optimization </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Partial redundancy elimination </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> (disabled) </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Escape analysis </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> GC and memory allocation optimizations </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/error.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'> Synchronization optimizations </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
<tr>
<th class='confluenceTh'>&nbsp;</th>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<th class='confluenceTh'> Native code generation </th>
<td class='confluenceTd'> Small optimization based on architecture characteristics </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/help_16.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
<td class='confluenceTd'> <img class="emoticon" src="images/icons/emoticons/check.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> </td>
</tr>
</tbody></table>
</div>


				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://docs.codehaus.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Jul 04, 2010 19:57</font></td>
		    </tr>
	    </table>
    </body>
</html>